package AlgebraLinear.SistemaLinear;

import java.util.ArrayList;
import java.util.List;

import javax.swing.JOptionPane;


public class InterfaceEquacao {

	/**
	 * autor: André Santos
	 */
	public static void main(String[] args) {
		List <String> equacoes = new ArrayList<String>();
		String tempo = "";
		
		List <String> variaveis = new ArrayList<String>();
		Double[][] matriz;
		double[] igualdade;
		
		do{
			tempo = JOptionPane.showInputDialog("Informe a equação");
			if(tempo.length() !=0 && tempo != null){
				equacoes.add(tempo);
			}
		}while(tempo.length() !=0 && tempo != null);
		
		matriz = new Double[equacoes.size()][equacoes.size()];
		igualdade = new double[equacoes.size()];
		
		for(int i = 0; i < equacoes.size(); i++){
			
			String[] tempString = equacoes.get(i).split("[=]")[0].split("[A-z]");
			for(int j = 0; j < tempString.length; j++){
				if(tempString[j].replaceAll("[+]", "").equals("")){
					matriz[i][j] = 1.0;
				}else if(tempString[j].replaceAll("[+]", "").equals("-")){
					matriz[i][j] = -1.0;
				}else{
					matriz[i][j] = Double.parseDouble(tempString[j].replaceAll("[+]", ""));
				}
				System.out.print(matriz[i][j]+"\t");
			}
			
			double tempDouble = Double.parseDouble(equacoes.get(i).split("[=]")[1]);
			System.out.println(tempDouble);
			igualdade[i] = tempDouble;
		}
		
		String[] tempString = equacoes.get(0).split("[=]")[0].replaceAll("[0-9]", "").split("[-+]");
		for(int j = 0; j < tempString.length; j++){
			variaveis.add(tempString[j]);
			System.out.print(tempString[j]+"\t");
		}
		System.out.println();
				
		double[] resultados = new EliminacaoGauss().Caucular(matriz, igualdade);
		
		for(int i = 0; i < variaveis.size(); i++){
			JOptionPane.showMessageDialog(null, variaveis.get(i)+" = "+resultados[i]);
		}
	}

}
